In the field of computer technology, a window is used for providing a user with access to information. In addition to providing access to the information, the window has a display area that displays the information. When a window maintains more information than it can display at one time, the window displays only a subset of the information. In this event, scrolling the window is necessary before a user can view the information maintained by the window that is not within the subset currently being displayed. Thus, scrolling refers to changing the subset of information displayed by a window. Scrolling is typically triggered in response to user input.
One type of scrolling in conventional systems is known as "scrolling beyond a screen boundary." This type of scrolling occurs when a user makes a selection of the information displayed by a window, and during the selection, the user moves the mouse cursor to an edge of the display area of the window. When the mouse cursor is at the edge of the display area of the window, conventional systems automatically scroll the window at a fixed speed to display more information to the user that the user can then select.
One problem that occurs when scrolling beyond a screen boundary is that the scrolling of conventional systems tends to be at a very high speed. Thus, when a user performs scrolling beyond a screen boundary wishing to select some information not currently being displayed, the user may see the desired information scroll by and out of view before the user can stop the scrolling. In this event, the user must cause the window to scroll in the reverse direction. Often times, users must scroll back and forth a number of times before being able to select the desired information. This leads to user frustration as well as a loss of user productivity.
Another type of scrolling occurs when a user hits either successive Page Down or Page Up keys. Hitting either the Page Down or the Page Up key on a keyboard, scrolls the window one window worth of information (e.g., a page) at a time in the respective direction. By scrolling one page at a time, however, the user loses their reference point in relation to the information being displayed since a completely new page of information is presented to the user. One way to solve this problem is to scroll the information one line at a time. This allows the user to see their reference point scroll by so that they can better gauge their location within the information. However, scrolling the information one line at a time uses significant processing time. Therefore, for example, when a user wants to quickly display information that is three pages away, the user must wait for the computer system to draw one line of information at a time until reaching the third page. This is time-consuming and tends to frustrate users that want to display specific information quickly.
Scrolling a window is well known. Typically, a computer program is responsible for maintaining the window and for displaying information in the window. The computer program receives the information to be displayed from a data store, such as a file. The computer program usually scrolls the window in response to a command to redraw the window. Such a command includes the level of granularity for displaying the information and the direction of scrolling. After receiving the command, the computer program will access the data store and determine which information should be displayed. For example, if the command indicated to scroll the next window-worth of information, the computer program will access the next window-worth of information from the file. After accessing the information, the computer program displays the information in the window at the level of granularity specified by the command and in the direction specified by the command.